//
//  ADGCount.h
//  DCAP
//
//  Created by admin on 2017/9/19.
//  Copyright © 2017年 成都倍智科技. All rights reserved.
//

#import <Foundation/Foundation.h>


@interface ADGConfigure : NSObject


/**
 在平台上注册获取的appkey ： required
 */
@property (nonatomic, copy) NSString *appKey;

/**
 在平台上注册获取的APP秘钥：required
 */
@property (nonatomic, copy) NSString *appSecret;

/**
 是否开启错误日志上报 ： optional, 默认：YES
 */
@property (nonatomic) BOOL enableCrashReport;


@end




@interface ADGCount : NSObject



/**
 初始化APP 统计模块

 @param configure 在平台上注册的AppKey
 */
+ (void)startWithConfigure:(ADGConfigure *)configure;

/**
 记录事件(通过事件标识)

 @param key 事件标识/id
 */
+ (void)recordEvent:(NSString *)key;

/**
 记录事件(通过事件标识及总数)

 @param key 事件key
 @param sum 总和(如：此次支付所消耗总金额)
 */
+ (void)recordEvent:(NSString *)key sum:(double)sum;

/**
 记录事件(通过事件标识及时长)

 @param key 事件key
 @param duration 时长
 */
+ (void)recordEvent:(NSString *)key duration:(NSTimeInterval)duration;

/**
 记录事件(通过事件key,次数, 总和)

 @param key 事件key
 @param count 事件记录的次数
 @param sum 总和(如：此次支付所消耗总金额)
 */
+ (void)recordEvent:(NSString *)key count:(NSUInteger)count sum:(double)sum;

/**
 记录事件(通过事件key,自定义参数)

 @param key 事件key
 @param segmentation 自定义参数值
 */
+ (void)recordEvent:(NSString *)key segmentation:(NSDictionary *)segmentation;

/**
 记录事件(通过事件key,自定义分段数据,次数)

 @param key 事件key
 @param segmentation 自定义字段数据
 @param count 次数
 */
+ (void)recordEvent:(NSString *)key segmentation:(NSDictionary *)segmentation count:(NSUInteger)count;

/**
 记录事件(通过事件key,自定义参数,字段数据,次数,总数)

 @param key 事件key
 @param segmentation 自定义参数
 @param count 次数
 @param sum 总和(如：此次支付所消耗总金额)
 */
+ (void)recordEvent:(NSString *)key segmentation:(NSDictionary *)segmentation count:(NSUInteger)count sum:(double)sum;

/**
 记录事件(通过事件key,自定义参数,字段数据,次数,总数,时长)

 @param key 事件key
 @param segmentation 自定义分段数据
 @param count 次数
 @param sum 总数
 @param duration 时长
 */
+ (void)recordEvent:(NSString *)key segmentation:(NSDictionary *)segmentation count:(NSUInteger)count sum:(double)sum duration:(NSTimeInterval)duration;

/**
 开始记录事件(通过传入的事件key)

 @param key 事件key
 */
+ (void)startEvent:(NSString *)key;

/**
 结束上次开始的事件（通过传入的事件key）

 @param key 事件key
 */
+ (void)endEvent:(NSString *)key;

/**
 结束上次开始的事件

 @param key 事件key
 @param segmentation 自定义参数
 @param count 次数
 @param sum 总数
 */
+ (void)endEvent:(NSString *)key segmentation:(NSDictionary *)segmentation count:(NSUInteger)count sum:(double)sum;
@end
